﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Biblioteca.Usuario
{
    public partial class BajaUsuario : Form
    {
        ClassDB GenClassBD;
       

        //esto va si o si...
        private static BajaUsuario formInstancia = null;
        BindingSource miBS;
       


        public static BajaUsuario Instancia()
        {
            if ((formInstancia == null) || (formInstancia.IsDisposed == true))
            {
                formInstancia = new BajaUsuario();
            }
            formInstancia.BringToFront();
            return formInstancia;
        }
        
        public BajaUsuario()
        {
            InitializeComponent();
            miBS = new BindingSource();
            GenClassBD = new ClassDB();
            //esto hacemos para llenar el combobox con los usuarios
            
            comboBoxUsuarios.Items.Clear();
            comboBoxUsuarios.Items.Add("Seleccione un elemento");

            //es apartir de 1 porque agrego el texto antes
                      
            ClassDB comando = new ClassDB();

            miBS = comando.Consulta("Select cod_usuario, (apellido + ', ' + nombre +' - Legajo: ' + CStr(legajo)) as nombre from Usuario where estado = 'Activo' order by apellido ");
            //con este metodo se llena el combobox con los datos de la consulta
            if (miBS.Count >= 0 )
            {
                // con esto enlazo los datos de la consulta con el combo
                comboBoxUsuarios.DataSource = miBS;
                comboBoxUsuarios.ValueMember ="cod_usuario";
                comboBoxUsuarios.DisplayMember = "nombre";
                //esto se hace para que obligue al usuario a elegir a uno
                comboBoxUsuarios.SelectedIndex = -1;
            }
            else
                //esto es por si no devuelve datos
                MessageBox.Show("No se encontraron Datos del Usuario!", "Busqueda de Usuario", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  
        }

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            if (comboBoxUsuarios.SelectedIndex == -1)
            {
                // esto es por si no selecciona algun elemento del combobox
                 MessageBox.Show("No se selecciono Usuario!", "Seleccione Usuario", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
                else
            {
                ClassDB comando = new ClassDB();
                //se hace el cambio este, xq lo que se hace referencia es un numero
                bindingSourceConsulta = comando.Consulta("Select * from Usuario where cod_usuario = " + Convert.ToInt32(comboBoxUsuarios.SelectedValue));
               //para cada label, se limpia la conexion, se la añade(poniendo el tipo de dato, de donde viene y con que columna hace referencia)


                labelCodigo.Text = Convert.ToString(comboBoxUsuarios.SelectedValue);
                // labelCodigo.DataBindings.Clear();
               // labelCodigo.DataBindings.Add("Text", bindingSourceConsulta, "cod_usuario");
        //        labelApellido.Visible = true;
              
                
                labelApellido.DataBindings.Clear();
                labelApellido.DataBindings.Add("Text", bindingSourceConsulta, "apellido");
                labelApellido.Visible = true;
              
                labelNombre.DataBindings.Clear();
                labelNombre.DataBindings.Add("Text", bindingSourceConsulta, "nombre");
                labelNombre.Visible = true;

                labelDomicilio.DataBindings.Clear();
                labelDomicilio.DataBindings.Add("Text", bindingSourceConsulta , "domicilio");
                labelDomicilio.Visible = true;

                labelMail.DataBindings.Clear();
                labelMail.DataBindings.Add("Text", bindingSourceConsulta, "mail");
                labelMail.Visible = true;

                labelCargo.DataBindings.Clear();
                labelCargo.DataBindings.Add("Text", bindingSourceConsulta, "cargo");
                labelCargo.Visible = true;

                labelCarrera.DataBindings.Clear();
                labelCarrera.DataBindings.Add("Text", bindingSourceConsulta, "carrera");
                labelCarrera.Visible = true;

                labelLegajo.DataBindings.Clear();
                labelLegajo.DataBindings.Add("Text", bindingSourceConsulta, "legajo");
                labelLegajo.Visible = true;

                labelFijo.DataBindings.Clear();
                labelFijo.DataBindings.Add("Text", bindingSourceConsulta, "telefono");
                labelFijo.Visible = true;

                labelCelular.DataBindings.Clear();
                labelCelular.DataBindings.Add("Text", bindingSourceConsulta, "celular");
                labelCelular.Visible = true;

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Principal main = new Principal();
            this.Hide();
            main.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Esta seguro que desea eliminar el Usuario", "Baja de Usuario", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            if (result == DialogResult.OK)
            { 
                /*GenClassBD.ModificarRegistro("Usuario","estado = '"+ labelEstado.Text+ "'","nombre = '" + 
                    labelNombre.Text + "' and apellido = '" + labelApellido.Text + "' and legajo ='" + labelLegajo.Text + "'");*/
                GenClassBD.ModificarRegistroPorClave("Usuario", "estado = '" + labelEstado.Text + "'", "cod_usuario = ", 
                    Convert.ToInt32(labelCodigo.Text) );
                MessageBox.Show("El Usuario Fue Dado de Baja con Exito!", "Usuario Eliminado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            }
        }

       
        
    }
}
